package win.devhu.testing.SpringBoot2Kotlin.todo.service

import org.springframework.beans.factory.annotation.Autowired
import org.springframework.stereotype.Service
import win.devhu.testing.SpringBoot2Kotlin.todo.entity.Todo
import win.devhu.testing.SpringBoot2Kotlin.todo.repository.TodoRepository

@Service
class TodoService @Autowired constructor(val todoRepository: TodoRepository) {

    //增
    fun create(todo: Todo): Todo {
        return todoRepository.save(todo)
    }

    //查询单个
    fun findOne(id: Long): Todo? {
        val o = todoRepository.findById(id)
        return if (o.isPresent) o.get() else null   //此处不使用optional 非null情况下返回 Todo实体
    }

    //查询全部
    fun findAll(): Iterable<Todo> {
        return todoRepository.findAll()
    }

    //修改
    fun update(todo:Todo) {
        todo.complete = !todo.complete!!    //变更状态，true变 false ，false 变 true
        todoRepository.save(todo)
    }

    //删除
    fun delete(todo:Todo) {
        todoRepository.delete(todo)
    }
}